CouchDB একটি ডকুমেন্ট-ভিত্তিক NoSQL ডাটাবেস যা CRUD অপারেশন (Create, Read, Update, Delete) সম্পাদন করতে সক্ষম। এই অপারেশনগুলো HTTP API এর মাধ্যমে পরিচালিত হয় এবং JSON ফরম্যাটে ডেটা সংরক্ষণ করা হয়। নিচে CouchDB এর CRUD অপারেশন বিস্তারিতভাবে আলোচনা করা হলো।
CouchDB তে নতুন ডকুমেন্ট তৈরি করার জন্য POST বা PUT HTTP রিকুয়েস্ট ব্যবহার করা হয়। একটি নতুন ডকুমেন্ট তৈরি করতে, আপনি ডেটাবেসের URL এ একটি POST রিকুয়েস্ট পাঠাতে হবে, যেখানে ডকুমেন্টের ডেটা JSON ফরম্যাটে অন্তর্ভুক্ত থাকবে।
POST রিকুয়েস্ট:POST /my_database
ডেটা (JSON):
{
"name": "John Doe",
"age": 30,
"city": "New York"
}
অপারেশন:
এটি একটি নতুন ডকুমেন্ট তৈরি করবে, যেখানে name
, age
, এবং city
ফিল্ড থাকবে।
প্রত্যুত্তর:
{
"ok": true,
"id": "document_id",
"rev": "1-xxx"
}
এখানে, "id"
হচ্ছে নতুন ডকুমেন্টের অনন্য চিহ্ন এবং "rev"
হচ্ছে ডকুমেন্টের প্রথম রিভিশন।
CouchDB তে একটি ডকুমেন্ট রিড করার জন্য GET HTTP রিকুয়েস্ট ব্যবহার করা হয়। একটি ডকুমেন্ট ফেচ করতে, ডকুমেন্টের _id ব্যবহার করে রিকুয়েস্ট করা হয়।
GET রিকুয়েস্ট:GET /my_database/document_id
অপারেশন:
এটি ডকুমেন্টের সমস্ত তথ্য ফিরিয়ে আনবে।
প্রত্যুত্তর:
{
"_id": "document_id",
"_rev": "1-xxx",
"name": "John Doe",
"age": 30,
"city": "New York"
}
এখানে, "name"
, "age"
, এবং "city"
ফিল্ডগুলি ডকুমেন্টের কন্টেন্ট হিসেবে প্রদর্শিত হচ্ছে।
CouchDB তে একটি ডকুমেন্ট আপডেট করতে PUT HTTP রিকুয়েস্ট ব্যবহার করা হয়। আপডেট করার জন্য, ডকুমেন্টের _id এবং _rev ফিল্ড প্রয়োজন হয়। _rev ফিল্ডটি আপডেটের আগে ডকুমেন্টের বর্তমান সংস্করণ চিহ্নিত করে।
PUT রিকুয়েস্ট:PUT /my_database/document_id
ডেটা (JSON):
{
"_id": "document_id",
"_rev": "1-xxx",
"name": "John Doe",
"age": 31,
"city": "Los Angeles"
}
অপারেশন:
এটি ডকুমেন্টের age
এবং city
ফিল্ড আপডেট করবে।
প্রত্যুত্তর:
{
"ok": true,
"id": "document_id",
"rev": "2-yyy"
}
এখানে, "rev"
ফিল্ডটি ডকুমেন্টের নতুন সংস্করণ চিহ্নিত করছে।
CouchDB তে একটি ডকুমেন্ট মুছে ফেলতে DELETE HTTP রিকুয়েস্ট ব্যবহার করা হয়। ডকুমেন্ট মুছে ফেলার জন্য, _id এবং _rev ফিল্ডগুলি প্রয়োজন হয়, কারণ _rev ফিল্ডটি ডকুমেন্টের সংস্করণ চিহ্নিত করে এবং কনফ্লিক্ট এড়াতে সহায়ক।
DELETE রিকুয়েস্ট:DELETE /my_database/document_id
ডেটা (JSON):
{
"_id": "document_id",
"_rev": "2-yyy"
}
অপারেশন:
এটি ডকুমেন্টটি মুছে ফেলবে।
প্রত্যুত্তর:
{
"ok": true,
"id": "document_id",
"rev": "3-zzz"
}
এখানে, "rev"
ফিল্ডটি মুছে ফেলার পরের সংস্করণকে চিহ্নিত করছে।
CouchDB তে একাধিক ডকুমেন্ট তৈরি, আপডেট বা মুছে ফেলতে _bulk_docs এন্ডপয়েন্ট ব্যবহার করা হয়। এতে একবারে একাধিক ডকুমেন্টের উপর অপারেশন করা সম্ভব।
POST রিকুয়েস্ট:POST /my_database/_bulk_docs
ডেটা (JSON):
{
"docs": [
{
"name": "Alice",
"age": 25,
"city": "Chicago"
},
{
"name": "Bob",
"age": 35,
"city": "San Francisco"
}
]
}
অপারেশন:
এটি দুটি ডকুমেন্ট একসাথে ইনসার্ট করবে।
প্রত্যুত্তর:
[
{
"ok": true,
"id": "document_id_1",
"rev": "1-xxx"
},
{
"ok": true,
"id": "document_id_2",
"rev": "1-yyy"
}
]
এখানে, দুটি ডকুমেন্টের ইনসার্ট সফল হয়েছে এবং তাদের _id এবং _rev ফিল্ড সরবরাহ করা হয়েছে।
CouchDB এর CRUD অপারেশনগুলো সোজা এবং কার্যকর, যেখানে HTTP API ব্যবহৃত হয়। এটি ডেটার JSON ভিত্তিক স্টোরেজ, রেপ্লিকেশন, কনফ্লিক্ট রেজোলিউশন, এবং উচ্চ স্কেলেবিলিটি সরবরাহ করে। CouchDB তে ডেটা ম্যানেজমেন্ট খুবই নমনীয়, যা ডিস্ট্রিবিউটেড অ্যাপ্লিকেশন এবং বড় ডেটাসেটগুলির জন্য আদর্শ।
CouchDB বা MongoDB-এর মতো Document-Oriented Database-এ নতুন ডকুমেন্ট তৈরি একটি গুরুত্বপূর্ণ অপারেশন। এই অপারেশনটি ডেটাবেসে নতুন ডকুমেন্ট যুক্ত করার জন্য ব্যবহৃত হয়। ডকুমেন্টগুলি সাধারণত JSON বা BSON ফরম্যাটে থাকে, এবং ডকুমেন্টের মধ্যে বিভিন্ন key-value pairs থাকতে পারে। নিচে নতুন ডকুমেন্ট তৈরি করার প্রক্রিয়া এবং উদাহরণ দেয়া হলো:
CouchDB তে নতুন ডকুমেন্ট তৈরি করতে, HTTP API ব্যবহার করতে হবে। এখানে একটি POST রিকুয়েস্ট প্রেরণ করতে হয়, যা ডেটাবেসে নতুন ডকুমেন্ট তৈরি করবে।
HTTP Request:
POST /my_database HTTP/1.1
Host: localhost:5984
Content-Type: application/json
Authorization: Basic <username:password>
Request Body (JSON):
{
"name": "John Doe",
"age": 29,
"email": "johndoe@example.com",
"address": {
"street": "123 Main St",
"city": "Anytown",
"zip": "12345"
}
}
curl -X POST http://localhost:5984/my_database -d '{
"name": "John Doe",
"age": 29,
"email": "johndoe@example.com",
"address": {
"street": "123 Main St",
"city": "Anytown",
"zip": "12345"
}
}'
{
"id": "c0ffee19ceba7c510bd69f8a62b58f87",
"rev": "1-232e54e1f2074bcbdadf07dbdd88895e"
}
এখানে:
MongoDB তে নতুন ডকুমেন্ট তৈরি করা বেশ সহজ। MongoDB-তে ডকুমেন্ট BSON ফরম্যাটে সংরক্ষিত হয়, যা JSON এর বাইনারি ফরম্যাট। MongoDB এর জন্য MongoDB Shell বা MongoDB Driver ব্যবহার করা যেতে পারে।
MongoDB Shell:
use my_database; // ডাটাবেস নির্বাচন করুন
db.users.insertOne({
name: "John Doe",
age: 29,
email: "johndoe@example.com",
address: {
street: "123 Main St",
city: "Anytown",
zip: "12345"
}
});
{
"acknowledged": true,
"insertedId": ObjectId("60f5c4e4d1f77b13c1be1c9d")
}
এখানে:
আপনি যদি কোন প্রোগ্রামিং ভাষা (যেমন Python, Node.js, PHP, etc.) ব্যবহার করতে চান, তবে ডেটাবেসের HTTP API বা ড্রাইভার ব্যবহার করতে পারেন নতুন ডকুমেন্ট তৈরি করার জন্য।
import requests
import json
url = "http://localhost:5984/my_database"
headers = {'Content-Type': 'application/json'}
data = {
"name": "John Doe",
"age": 29,
"email": "johndoe@example.com",
"address": {
"street": "123 Main St",
"city": "Anytown",
"zip": "12345"
}
}
response = requests.post(url, json=data, headers=headers)
print(response.json())
const axios = require('axios');
const data = {
name: "John Doe",
age: 29,
email: "johndoe@example.com",
address: {
street: "123 Main St",
city: "Anytown",
zip: "12345"
}
};
axios.post('http://localhost:5984/my_database', data, {
headers: {
'Content-Type': 'application/json'
}
})
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error(error);
});
সারাংশ: নতুন ডকুমেন্ট তৈরি করার প্রক্রিয়া ডকুমেন্ট-ভিত্তিক ডাটাবেসে খুবই সহজ এবং নমনীয়। HTTP API, ডাটাবেস শেল, বা প্রোগ্রামিং ভাষার মাধ্যমে আপনি দ্রুত ডকুমেন্ট তৈরি করতে পারেন, যা আপনার অ্যাপ্লিকেশনের জন্য উপযুক্ত।
CouchDB-তে একটি ডকুমেন্ট পড়া বা ফেচ করা একটি মৌলিক অপারেশন, যা HTTP API ব্যবহার করে খুব সহজেই করা যায়। CouchDB-তে একটি ডকুমেন্ট _id (অনন্য চিহ্ন) এর মাধ্যমে অ্যাক্সেস করা হয় এবং এটি GET HTTP রিকুয়েস্টের মাধ্যমে রিড করা হয়। নিচে বিস্তারিতভাবে ডকুমেন্ট রিড/ফেচ করার পদ্ধতি এবং প্রক্রিয়া আলোচনা করা হলো।
CouchDB এর সাথে যোগাযোগ করার জন্য HTTP API ব্যবহার করা হয়। একটি ডকুমেন্ট পড়তে GET রিকুয়েস্ট পাঠানো হয়। এই রিকুয়েস্টে ডকুমেন্টের _id এবং _rev (যদি প্রয়োজন হয়) পাঠানো হয়।
ডকুমেন্ট রিড করার জন্য নিচের মতো একটি GET রিকুয়েস্ট পাঠানো হয়:
GET /db_name/document_id
এখানে:
curl -X GET http://127.0.0.1:5984/mydatabase/mydoc123
এখানে:
ডকুমেন্ট রিড করার পর, সার্ভার থেকে একটি JSON রেসপন্স আসবে, যা ডকুমেন্টের ডেটা এবং অতিরিক্ত তথ্য ধারণ করে। যেমন:
{
"_id": "mydoc123",
"_rev": "1-2345abcd6789efgh",
"name": "John Doe",
"email": "johndoe@example.com",
"age": 30
}
এখানে:
কিছু ক্ষেত্রে, আপনি View ব্যবহার করে ডকুমেন্ট ফিল্টার করতে পারেন, যাতে নির্দিষ্ট শর্তে ডেটা ফেচ করা যায়। যেমন:
GET /db_name/_design/myview/_view/myfilter?key="John Doe"
এখানে:
যখন একটি ডকুমেন্টের একাধিক সংস্করণ (revision) থাকে, তখন _rev ফিল্ডের মাধ্যমে নির্দিষ্ট সংস্করণটি রিড করা হয়। যদি কোন কনফ্লিক্ট ঘটে, তবে CouchDB _rev ফিল্ডের সাহায্যে সর্বশেষ সংস্করণ নির্বাচন করে।
আপনি _changes API এর মাধ্যমে include_docs=true সেট করে সংশ্লিষ্ট ডকুমেন্টগুলো ফেচ করতে পারেন:
GET /mydatabase/_changes?include_docs=true
এটি সমস্ত পরিবর্তিত ডকুমেন্টের সাথে তাদের ডেটাও ফিরিয়ে দেবে।
কিছু পরিস্থিতিতে, আপনি শুধু ডকুমেন্টের নির্দিষ্ট ফিল্ড ফেচ করতে চাইলে, আপনি HTTP HEAD রিকুয়েস্ট ব্যবহার করতে পারেন। উদাহরণ:
HEAD /db_name/document_id
এটি ডকুমেন্টের মেটাডেটা প্রদান করবে, কিন্তু ডকুমেন্টের পুরো কনটেন্ট নয়।
CouchDB HTTP API-তে If-None-Match বা If-Match হেডার ব্যবহার করে শর্তযুক্ত রিড করা সম্ভব। উদাহরণস্বরূপ:
GET /db_name/document_id HTTP/1.1
If-None-Match: "etag_value"
এটি শুধুমাত্র তখনই ডকুমেন্ট রিটার্ন করবে যদি etag_value মেলে না।
CouchDB তে ডকুমেন্ট রিড/ফেচ করা একটি সহজ এবং কার্যকর প্রক্রিয়া, যা HTTP API এর মাধ্যমে দ্রুত এবং দক্ষভাবে ডেটা অ্যাক্সেস করতে সহায়ক। ডকুমেন্টের _id ব্যবহার করে দ্রুত রিড অপারেশন সম্ভব, এবং এর মধ্যে থাকা MapReduce Views এবং অন্যান্য কুয়েরি পদ্ধতিগুলি ডেটা অ্যাক্সেস আরও শক্তিশালী করে তোলে।
ডকুমেন্ট-ভিত্তিক ডাটাবেসে Update অপারেশনটি ডেটার বিদ্যমান ডকুমেন্ট বা রেকর্ড পরিবর্তন বা সংশোধন করার জন্য ব্যবহৃত হয়। এই অপারেশনে ডকুমেন্টের পুরনো মানগুলি নতুন মানের সাথে প্রতিস্থাপন করা হয়। CouchDB বা MongoDB-এর মতো ডকুমেন্ট-ভিত্তিক ডাটাবেসে ডেটা JSON বা BSON ফরম্যাটে থাকে, এবং Update
অপারেশনটি সাধারণত ডকুমেন্টের key-value pairs বা nested structures পরিবর্তন করে।
ধরা যাক, আমাদের একটি ডকুমেন্ট আছে যার _id হলো user123
, এবং এটি কিছু তথ্য সংরক্ষণ করে:
{
"_id": "user123",
"_rev": "1-2345",
"name": "John Doe",
"email": "john.doe@example.com"
}
এখন, আমরা ব্যবহারকারীর email ঠিকানা আপডেট করতে চাই। এটি করার জন্য, আমরা নতুন মানের সাথে _rev ফিল্ডের মানও অন্তর্ভুক্ত করি।
{
"_id": "user123",
"_rev": "1-2345",
"name": "John Doe",
"email": "john.doe@newdomain.com"
}
এই আপডেটের পর, CouchDB বা MongoDB নতুন _rev তৈরি করবে, যেমন "2-6789"
, এবং ডকুমেন্টটি নতুন মানে সংরক্ষণ করবে।
MongoDB তে, আপডেট করার জন্য update()
বা updateOne()
ফাংশন ব্যবহার করা হয়।
db.users.updateOne(
{ _id: "user123" }, // ফিল্টার (যে ডকুমেন্টটি আপডেট করতে হবে)
{ $set: { email: "john.doe@newdomain.com" } } // আপডেট অপারেশন
);
এখানে, $set
অপারেটরটি ব্যবহার করে email ফিল্ডটি আপডেট করা হয়েছে। MongoDB এই পরিবর্তনটি ডকুমেন্টে সংরক্ষণ করবে।
ডকুমেন্ট আপডেট একটি গুরুত্বপূর্ণ কার্যক্রম, যা ডেটাবেসে ডেটার সংশোধন এবং পরিবর্তন করার জন্য ব্যবহৃত হয়। এটি সহজেই JSON বা BSON ডকুমেন্টের ফরম্যাটে কাজ করে এবং _rev ফিল্ডের মাধ্যমে কনফ্লিক্ট সমাধান করতে সাহায্য করে। ডকুমেন্ট-ভিত্তিক ডাটাবেসগুলিতে, যেমন CouchDB বা MongoDB, আপডেট অপারেশনটি অত্যন্ত নমনীয় এবং ডেটার উপর একটি কার্যকর ও দ্রুত পরিবর্তন করতে সহায়ক।
CouchDB একটি ডকুমেন্ট-ভিত্তিক ডাটাবেস, যেখানে ডেটা JSON ডকুমেন্ট আকারে সংরক্ষণ করা হয়। কখনও কখনও একটি ডকুমেন্ট মুছে ফেলতে হতে পারে, এবং CouchDB এই কাজটি করার জন্য বিশেষ একটি পদ্ধতি প্রদান করে। ডকুমেন্ট মুছে ফেলতে হলে, আপনাকে ডকুমেন্টের _id এবং _rev (রিভিশন নম্বর) ফিল্ড ব্যবহার করতে হবে।
CouchDB-তে একটি ডকুমেন্ট মুছে ফেলার জন্য আপনাকে নিম্নলিখিত রিকুয়েস্টটি পাঠাতে হবে:
DELETE /<database>/<document_id>?rev=<revision_id>
এখানে:
ধরা যাক, আপনি একটি ডকুমেন্ট মুছতে চান যার _id হল 12345
এবং _rev হল 1-2345abcde
. এর জন্য আপনাকে নিম্নলিখিত DELETE রিকুয়েস্ট পাঠাতে হবে:
DELETE /my_database/12345?rev=1-2345abcde
এই রিকুয়েস্টটি সফল হলে, CouchDB ডকুমেন্টটি মুছে ফেলবে এবং একটি 200 OK স্ট্যাটাস কোড রিটার্ন করবে। যদি _rev ভুল থাকে অথবা ডকুমেন্টটি খুঁজে না পাওয়া যায়, তবে একটি 404 Not Found অথবা 409 Conflict এর মতো ত্রুটি কোড রিটার্ন করা হবে।
প্রথমে ডকুমেন্ট পাওয়া: আপনি যেই ডকুমেন্টটি মুছে ফেলতে চান, সেটি GET রিকুয়েস্ট দিয়ে প্রথমে সার্ভার থেকে নিয়ে আসবেন। উদাহরণ:
GET /my_database/12345
এই রিকুয়েস্টের মাধ্যমে আপনি ডকুমেন্টের _id এবং _rev ফিল্ডের মান পাবেন।
মুছুন ডকুমেন্ট: পরে, উপরের নির্দেশনা অনুযায়ী DELETE রিকুয়েস্ট পাঠান। উদাহরণ:
DELETE /my_database/12345?rev=1-2345abcde
CouchDB-তে ডকুমেন্ট মুছে ফেলা একটি খুবই গুরুত্বপূর্ণ এবং সাধারণ অপারেশন, যেহেতু এতে সিস্টেমে থাকা অপ্রয়োজনীয় ডেটা মুছে ফেলা যায়। তবে, এটি করার সময় অবশ্যই ডকুমেন্টের _rev সঠিকভাবে ব্যবহার করা প্রয়োজন, যাতে সঠিক সংস্করণ মুছে ফেলা হয়।
Bulk Operations একটি গুরুত্বপূর্ণ বৈশিষ্ট্য যা CouchDB-তে একযোগে একাধিক ডকুমেন্ট তৈরি, আপডেট বা মুছে ফেলার প্রক্রিয়া সহজ করে তোলে। এটি বিশেষভাবে বড় ডেটাসেট বা উচ্চ কার্যকারিতা সম্পন্ন অ্যাপ্লিকেশনের জন্য উপযুক্ত, যেখানে একাধিক ডকুমেন্ট একবারে প্রক্রিয়া করা দরকার।
CouchDB এ Bulk Operations পরিচালনা করার জন্য সাধারণত Bulk Documents API ব্যবহার করা হয়। এর মাধ্যমে একাধিক ডকুমেন্টের CRUD (Create, Read, Update, Delete) অপারেশন একযোগে করা যেতে পারে, যা সার্ভারের প্রতি রিকুয়েস্টের সংখ্যা কমিয়ে দেয় এবং পারফরম্যান্স উন্নত করতে সহায়ক।
CouchDB তে একাধিক নতুন ডকুমেন্ট একসাথে তৈরি করার জন্য Bulk Documents API ব্যবহার করা হয়। এখানে আপনি একাধিক ডকুমেন্টের JSON অবজেক্ট একত্রে পাঠাতে পারেন।
POST
রিকুয়েস্ট ব্যবহার করে আপনি একাধিক ডকুমেন্ট তৈরি করতে পারেন:
POST http://localhost:5984/your_database/_bulk_docs
{
"docs": [
{
"_id": "doc1",
"name": "John Doe",
"age": 30
},
{
"_id": "doc2",
"name": "Jane Smith",
"age": 25
},
{
"_id": "doc3",
"name": "Sam Green",
"age": 35
}
]
}
[
{
"id": "doc1",
"rev": "1-23456"
},
{
"id": "doc2",
"rev": "1-34567"
},
{
"id": "doc3",
"rev": "1-45678"
}
]
এই প্রক্রিয়ায়, CouchDB একযোগে সমস্ত ডকুমেন্ট তৈরি করে এবং তাদের _rev ফিল্ড সহ সাড়া পাঠায়।
CouchDB-তে বিদ্যমান ডকুমেন্ট আপডেট করতে হলে, আপনি _rev ফিল্ড সহ ডকুমেন্টটি পাঠাতে হবে। Bulk update অপারেশন একইভাবে Bulk Documents API ব্যবহার করে করা যায়।
POST
রিকুয়েস্ট ব্যবহার করে আপনি একাধিক ডকুমেন্ট আপডেট করতে পারেন:
POST http://localhost:5984/your_database/_bulk_docs
{
"docs": [
{
"_id": "doc1",
"_rev": "1-23456",
"name": "John Doe",
"age": 31
},
{
"_id": "doc2",
"_rev": "1-34567",
"name": "Jane Smith",
"age": 26
}
]
}
[
{
"id": "doc1",
"rev": "2-56789"
},
{
"id": "doc2",
"rev": "2-67890"
}
]
এই ক্ষেত্রে, আপনি যে ডকুমেন্টগুলিকে আপডেট করতে চান তাদের _rev ফিল্ড ব্যবহার করতে হবে। CouchDB নতুন _rev পাসপোর্টের সাথে সংশোধিত ডকুমেন্টগুলির সাড়া পাঠাবে।
একইভাবে, Bulk Documents API ব্যবহার করে একাধিক ডকুমেন্ট মুছে ফেলা যায়। ডকুমেন্ট মুছে ফেলার জন্য, আপনাকে _id এবং _rev সহ ডকুমেন্ট পাঠাতে হবে, যাতে CouchDB নিশ্চিত করতে পারে যে এটি সঠিক ডকুমেন্ট মুছে ফেলছে।
POST
রিকুয়েস্ট ব্যবহার করে আপনি একাধিক ডকুমেন্ট মুছে ফেলতে পারেন:
POST http://localhost:5984/your_database/_bulk_docs
{
"docs": [
{
"_id": "doc1",
"_rev": "2-56789",
"_deleted": true
},
{
"_id": "doc2",
"_rev": "2-67890",
"_deleted": true
}
]
}
[
{
"id": "doc1",
"rev": "3-78901"
},
{
"id": "doc2",
"rev": "3-89012"
}
]
এখানে, _deleted ফিল্ডকে true
সেট করা হয়েছে, যা CouchDB কে নির্দেশ দেয় যে ডকুমেন্টটি মুছে ফেলা উচিত।
যদি কোনো ডকুমেন্টের মধ্যে ভুল থাকে (যেমন: _rev মিসিং বা ভুল), তখন CouchDB একটি ত্রুটি রিপোর্ট করবে এবং সংশ্লিষ্ট ডকুমেন্টের জন্য error
অথবা reason
প্রদান করবে। উদাহরণস্বরূপ:
[
{
"id": "doc1",
"error": "conflict",
"reason": "Document update conflict"
},
{
"id": "doc2",
"rev": "3-89012"
}
]
এটি দেখায় যে doc1 ডকুমেন্টের আপডেট কনফ্লিক্ট হয়েছে, কিন্তু doc2 সফলভাবে আপডেট হয়েছে।
Bulk Operations CouchDB-তে একাধিক ডকুমেন্ট একযোগে তৈরি, আপডেট বা মুছে ফেলতে সাহায্য করে। এটি সার্ভারের লোড কমানোর পাশাপাশি পারফরম্যান্সও উন্নত করতে সহায়ক। এই ফিচারটি বড় আকারের অ্যাপ্লিকেশন বা ডেটাবেস সিস্টেমে ডেটা পরিচালনা সহজ করে তোলে।
common.read_more